module.exports = {
    apps: [
        {
            name: "app",
            script: "./bin/www",
            watch: false,
            watch_delay: 0,
            // 显式地列出所有要忽略的路径，包括默认的 node_modules
            ignore_watch: [
                "node_modules", // 必须包含！
                ".git", // 建议包含
                "logs",
                "temp",
                "uploads" // 其他你不想监视的目录或文件
            ],
            env_production: {
                NODE_ENV: "production"
            },
            env_development: {
                NODE_ENV: "development",
                watch: true // 开发环境开启watch
            },
            autorestart: true, // 自动重启
            // 自定义标准输出日志路径和名称
            out_file: "./logs/app.stdout.log", // 相对路径（基于应用启动目录）
            // 自定义错误日志路径和名称
            error_file: "./logs/app.stderr.log",
            // 日志每行的时间戳格式（需配合 PM2 的日志输出）
            log_date_format: "YYYY-MM-DD HH:mm:ss Z",
            //是否将标准输出和错误输出合并到同一个日志文件
            merge_logs: true,
            // 应用级日志轮转配置（覆盖全局插件设置）
            env: {
                PM2_LOGROTATE_MAX_SIZE: "1M", // 单个日志文件最大50MB（全局默认10M）
                PM2_LOGROTATE_RETAIN: 30, // 保留20个旧日志（全局默认30）
                PM2_LOGROTATE_COMPRESS: "true", // 压缩旧日志（覆盖全局）
                PM2_LOGROTATE_DATEFORMAT: "YYYY-MM-DD_HH-mm-ss", // 旧日志的时间后缀格式
                PM2_LOGROTATE_ROTATEINTERVAL: "0 0 * * *", //每天凌晨强制轮转一次（无论大小）
                // 为当前应用单独指定轮转日志目录（覆盖全局配置）
                PM2_LOGROTATE_ROTATE_PATH: "./logs/rotated" // 相对路径或绝对路径
            }
        }
    ]
    // deploy: {
    //     production: {
    //         // 定义 production 环境的部署信息
    //         user: "Administrator", // 服务器登录用户名
    //         host: "111.228.63.156", // 服务器 IP 或域名
    //         ref: "origin/main", // 要部署的代码分支
    //         repo: "git@gitcode.com:xialei520/make-friend-server.git", // 代码仓库地址
    //         path: "C:\\Server", // 服务器上的部署路径（需提前创建）
    //         // 部署前执行的命令（如拉取最新代码、安装依赖）
    //         "post-deploy": "pnpm install && pm2 reload ecosystem.config.js --env production"
    //     },
    //     // 可选：定义 development 环境的部署配置
    //     development: {
    //         // ... 类似配置
    //     }
    // }
};
